package com.tedu.api.thread;

/**
 * setPriority()     设置线程优先级---决定执行那个线程
 * 单线程：创建一个线程做一件事
 * 多线程：创建多个线程做不同的事情
 * 线程优先级范围：1~10  数值越大被执行几率越大
 *
 * 案例：创建三个线程，分别指定三个线程优先级  max      10
 *                                     1000次：老大一声吼,地球抖三抖
 *                                     normal    5
 *                                     1000次：老二一出手，蚊子全飞走
 *                                     min      1
 *                                     1000次：老三一张口，笑倒一头牛
 *      使用Lambda完成三个线程创建【多线程】
 *      总结：创建线程【多线程】“同时”并发运行时，不能主动获取CPU时间片
 *            也不能决定时间片长度，只能被动分配！
 *            如果调整优先级，按照优先级数值大小，确定是否加大获取CPU时间片
 *            几率！
 *
 */
public class Thread_Priority {
    public static void main(String[] args) {
        //创建三个线程   ： 1.max
         //              2.normal
        //               3.min
        Thread max=new Thread(()->{
            for (int i = 0; i <1000; i++) {
                System.out.println("老大一声吼,地球抖三抖");
            }
        });

        Thread normal=new Thread(()->{
            for (int i = 0; i <1000 ; i++) {
                System.out.println("老二一出手，蚊子全飞走");
            }
        });

        Thread min=new Thread(()->{
            for (int i = 0; i <1000 ; i++) {
                System.out.println("老三一张口，笑倒一头牛");
            }
        });
        //设置线程优先级：max  10   normal  5   min   1
        max.setPriority(10);
        min.setPriority(Thread.MIN_PRIORITY);//顶死值
        //统一启动
        min.start();max.start();normal.start();

    }

}
